package com.nit.lab.service.basic;

import com.nit.lab.dto.basic.UnitDTO;
import com.nit.lab.dto.system.TreeDTO;
import com.nit.lab.dto.utils.TableReqDTO;
import com.nit.lab.dto.utils.TableRspDTO;

import java.util.List;

public interface UnitService {
    /**
     * @Description: 获取单位表格数据
     * @Author HWY
     * @Date 2020/12/14 10:50
     */
    TableRspDTO list4Table(TableReqDTO tableReqDTO) throws Exception;

    /**
     * @Description: 新增单位信息
     * @Author HWY
     * @Date 2020/12/14 10:50
     */
    Integer add(UnitDTO unitDTO) throws Exception;

    /**
     * @Description: 更新单位信息
     * @Author HWY
     * @Date 2020/12/14 10:50
     */
    Integer update(UnitDTO unitDTO) throws Exception;

    /**
     * @Description: 删除单位信息
     * @Author HWY
     * @Date 2020/12/14 10:50
     */
    Integer remove(String unitIds) throws Exception;

    /**
     * @Description: 获取单位信息用于选择
     * @Author: HWY
     * @Date: 2020/12/14 22:45
     */
    List<UnitDTO> listUnit() throws Exception;

    /**
     * @Description: 获取单位信息树
     * @Author HWY
     * @Date 2020/12/20
     */
    List<TreeDTO> listUnitTree(Long unitId, Long unitType) throws Exception;

    /**
     * @Description: 根据部别(备注)获取单位信息用于数据导入
     * @Author: SN
     * @Date: 2020/12/14 22:45
     */
    UnitDTO getUnitByInfo(String unitInfo) throws Exception;

    /**
     * @Description: 根据ID获取单位信息用于Word生成
     * @Author: SN
     * @Date: 2020/12/14 22:45
     */
    UnitDTO getUnitById(Long unitId) throws Exception;

    /**
     * @Description: 根据单位名称获取营列表
     * @Author: ZXQ
     * @Date: 2021/3/4
     */
    List<UnitDTO> listUnitByUnitName(String unitName) throws Exception;

    /**
     * @Description: 根据id获取name
     * @Author: HGJ
     * @Date: 2021/4/15
     */
    String getUnitNameById(Long unitId) throws Exception;
}
